﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraBars;
using DevExpress.UserSkins;
using DevExpress.XtraBars.Helpers;
using QL_DTTN.DTO;
using QL_DTTN.DTO.DTO;
using QL_DTTN.TTTS;
using QL_DTTN.TTKT;
using QL_DTTN.KQT;
using System.Linq;
namespace QL_DTTN
{
    public partial class RFrmMain : DevExpress.XtraBars.Ribbon.RibbonForm
    {

        bool isLoaded = true;
        private TaiKhoan _taiKhoan;
        private Quyen _quyen;
        private List<ChucNang> _lstChucNang;
        public RFrmMain()
        {
            InitializeComponent();
            _taiKhoan = new TaiKhoan();
            _quyen = new Quyen();
            _lstChucNang = new List<ChucNang>();
            if (!ConnectionSQL.TestConnection())
            {
                KetNoiDatabase frmKetNoi = new KetNoiDatabase();
                frmKetNoi._reconnect = false;
                frmKetNoi.ShowDialog();
                isLoaded = frmKetNoi.isConnected;
                if (frmKetNoi.isConnected)
                    dangNhap();
                else Application.Exit();
            }
            else
            {
                dangNhap();
            }
        }
        private void dangNhap()
        {
            FormDangNhap frmDangNhap = new FormDangNhap();
            frmDangNhap.sender = new FormDangNhap.SEND(getTaiKhoan);
            frmDangNhap.ShowDialog();
            isLoaded = frmDangNhap.isLogin;
        }
        private void getTaiKhoan(TaiKhoan taiKhoan)
        {
            this._taiKhoan = taiKhoan;
        }
        private void btiPhanQuyen_ItemClick(object sender, ItemClickEventArgs e)
        {

        }
        private bool checkAddForm(string frmName)
        {
            bool add = true;
            if (xtraTabbedMdiManager1.Pages.Count > 0)
            {
                for (int i = 0; i < xtraTabbedMdiManager1.Pages.Count; i++)
                {
                    if (xtraTabbedMdiManager1.Pages[i].Text == frmName)
                    {
                        add = false;
                        xtraTabbedMdiManager1.SelectedPage = xtraTabbedMdiManager1.Pages[i];
                        return add;
                    }
                }
            }
            return add;
        }
        private void addForm(string nameForm, Form frm)
        {
            if (checkAddForm(nameForm))
            {
                frm.Text = nameForm;
                frm.TopLevel = false;
                frm.MdiParent = this;
                frm.Show();
            }
        }
        private void btiThemThiSinh_ItemClick(object sender, ItemClickEventArgs e)
        {
            FrmThemThiSinh frm = new FrmThemThiSinh();
            addForm("Thêm Thí Sinh", frm);
        }
        private void btiCapNhatThongTinThiSinh_ItemClick(object sender, ItemClickEventArgs e)
        {
            FrmCapNhatThongTinThiSinh frm = new FrmCapNhatThongTinThiSinh();
            addForm("Cập nhật Thông Tin Thí Sinh", frm);
        }
        private void btiThemKyThi_ItemClick(object sender, ItemClickEventArgs e)
        {
            FrmThemKyThi frm = new FrmThemKyThi();
            addForm("Thêm Kỳ Thi", frm);
        }
        private void btiQuanLyDiemThi_ItemClick(object sender, ItemClickEventArgs e)
        {
            FrmQuanLyDiemThi frm = new FrmQuanLyDiemThi();
            addForm("Quản Lý Địa Điểm Thi", frm);
        }
        private void btiImportThiSinh_ItemClick(object sender, ItemClickEventArgs e)
        {
            FrmImportThiSinh frm = new FrmImportThiSinh();
            addForm("Nhập Danh Sách Thí Sinh Từ Excel", frm);
        }
        private void btiXemThongTinThiSinh_ItemClick(object sender, ItemClickEventArgs e)
        {
            FrmXemThongTinThiSinh frm = new FrmXemThongTinThiSinh();
            addForm("Xem Thông Tin Thí Sinh", frm);
        }
        private void btiXuatLichThi_ItemClick(object sender, ItemClickEventArgs e)
        {
            FrmXuatLichThi frm = new FrmXuatLichThi();
            addForm("Xuất Lịch Thi ", frm);
        }
        private void btiQuanLyLichThi_ItemClick(object sender, ItemClickEventArgs e)
        {
            FrmQuanLyLichThi frm = new FrmQuanLyLichThi();
            addForm("Quản Lý Lịch Thi ", frm);
        }

        private void RFrmMain_Load(object sender, EventArgs e)
        {
            if (isLoaded)
            {
                _quyen = BUS.Quyen_Bus.GetQuyen(_taiKhoan.MaQuyen);
                _lstChucNang = BUS.Quyen_Bus.lstChucNang(_taiKhoan.MaQuyen);
                foreach (var item in ribbon.Items)
                {
                    try
                    {
                        BarButtonItem ibtn = (BarButtonItem)item;
                        if (_lstChucNang.Where(c => c.MaChucNang == ibtn.Name).Count() > 0)
                        {
                            ibtn.Enabled = true;
                        }
                    }
                    catch
                    {
                    }
                }
            }
        }

        private void btiCapNhatKetQuaThi_ItemClick(object sender, ItemClickEventArgs e)
        {
            FrmCapNhatKetQuaThi frm = new FrmCapNhatKetQuaThi();
            frm.TaiKhoan = _taiKhoan;
            addForm("Cập Nhật Kết Quả Thi ", frm);
        }

        private void btiXemKetQuaThi_ItemClick(object sender, ItemClickEventArgs e)
        {
            FrmXemKetQuaThi frm = new FrmXemKetQuaThi();
            addForm("Xem Kết Quả Thi ", frm);
        }

        private void btXuatiKetQuaThi_ItemClick(object sender, ItemClickEventArgs e)
        {
            FrmXuatKetQuaThi frm = new FrmXuatKetQuaThi();
            addForm("Xuất kết Quả Thi ", frm);
        }

        private void btiImportKetQuaThi_ItemClick(object sender, ItemClickEventArgs e)
        {
            FrmImportKetQuaThi frm = new FrmImportKetQuaThi();
            frm.TaiKhoan = _taiKhoan;
            addForm("Nhập Kết Quả Thi Từ Excel", frm);
        }

        private void btiDangThoat_ItemClick(object sender, ItemClickEventArgs e)
        {
            DialogResult = MessageBox.Show("Bạn có chắc muốn thoát không?", "Thông báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning);
            if (DialogResult == DialogResult.OK)
            {
                  Application.Exit();
            }
          
        }


    }
}